2024年6月時点におけるCloudflare Page Rulesの現状について
しばたです。
私は個人のサイトでCloudflareのPage Rulesを使っているのですが、先月中旬ごろにPage Rulesの廃止に関するアナウンスがありました。
今月に入りこの廃止に対応するために改めて調査をしたところ、状況が変わっていたため、本日(2024年6月22日)時点での状況と具体的な移行例を紹介したいと思います。
2024年6月24日追記
中の人(亀田さん)からもPage Rulesに関する記事が公開されました。
こちらの記事のほうがPage Rules自体の機能や追記時点(2024年6月24日時点)の状況についてより詳しく記載しているのでぜひご一読ください。
追記時点では
この自動化された移行は2025年のどこかで行うことが予定されており、追ってアナウンスを行う予定です。また今から新規でルールを設定するユーザーはPages Rulesではなくより細分化されたルールを用いることを推奨しています。
という状況です。
Page Rulesの廃止について
CloudflareのPage Rulesは長い間1つのサービスで多くの機能を担ってきましたが、2022年後半より機能別に分割されたうえで刷新され本日に至るまで両者が共存した状態となっています。
そして中の人のポストおよびChangelog (当時のInternet Archive)によれば2024年5月14日にPage Rules廃止のアナウンスと移行ガイドが公開されました。
公開当時の内容としては
- Page Rulesは非推奨 (Page Rules are now deprecated.)
- 2024年7月1日よりプラン毎に順次Page Rulesの新規利用を廃止
- 2025年に既存のPage Rulesを新しい機能に移行
というものでした。
詳細についてはInternet Archiveから確認可能です。
2024年6月22日時点の状況
ただ、現在は状況が変わっており、2024年6月10日に移行に関するコミュニティページで以下のアナウンスが追記されています。
Note: This post has been updated on June 10th, 2024 to reflect our revised migration plan.
In this update, we are making it clear that Cloudflare will handle the migration of existing Page Rules, so customers do not need to migrate their own rules unless they wish to do so.
Additionally, Page Rules will remain available for all accounts and zones, including new ones, until the start of the migration.
本日時点で一旦Page Rulesの廃止は撤回され、既存Page Rulesの移行をシームレスにできる様に仕切り直す様です。
Page Rulesの新規利用についても廃止は撤回された模様です。
併せてChangelogの内容も見直され、現在は
- Page Rulesはレガシー (Page Rules are now a legacy product. )
という扱いになっています。
私のアカウントの管理コンソールを見ても、確かに当時は存在していた「Deprecated
」の文言が無くなっていました。
(先月はコンソール上でもDeprecated
であることが確認できたが今は取り消されている)
- 先月時点の状況が分かる参考記事 : Cloudflare retires Page Rules
移行例
ここまでの話でいったんはPage Rulesの移行を行う必要が無くなったわけですが、私は簡単な用途に1ルール使っているだけだったので、この記事を書くのに際して手作業で移行してみました。
移行前ルール (Page Rules)
現在設定しているルールは私の個人サイト www.shibata.tech 用に
- 「
shibata.tech
」へのアクセスを「https://www.shibata.tech/
」に301リダイレクト
する簡単なルールを設定しています。[1]
curl
コマンドで現状の動作を確認すると以下の様な挙動となります。
# curlコマンドでリダイレクトを確認
$ curl -I http://shibata.tech/
HTTP/1.1 301 Moved Permanently
Date: Sat, 22 Jun 2024 08:35:41 GMT
Content-Type: text/html
Content-Length: 167
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Sat, 22 Jun 2024 09:35:41 GMT
Location: https://www.shibata.tech/
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=xxxx(snip)xxxx"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 897ae807cf32264e-NRT
alt-svc: h3=":443"; ma=86400
# リダイレクト先だけを抽出するとこんな感じ
$ curl -I http://shibata.tech/ 2>&1 | grep -i Location
Location: https://www.shibata.tech/
$ curl -I https://shibata.tech/ 2>&1 | grep -i Location
location: https://www.shibata.tech/
$ curl -I https://shibata.tech/website-architecture/ 2>&1 | grep -i Location
location: https://www.shibata.tech/website-architecture/
移行後ルール (Redirect Rules)
リダイレクトなので移行先は「Redirect Rules」になります。
Redirect Rulesの書き方は従来のPage Rulesとは異なるので移行ガイドの例を見ながら気合いでなんとかします。
ざっくり解説するとこんな感じです。
- Custom filter expressionで「
ホスト名 = shibata.tech
」の場合だけを対象に - リダイレクト先は動的に「
concat("https://www.shibata.tech", http.request.uri.path)
」とし、ホスト名をwww.shibata.tech
に置換する体とする - クエリ文字列は維持
このルールをデプロイし、既存のPage Rulesを無効にすれば移行は完了です。
(最終的にPage Rulesの方は削除して構わない)
移行後の動作確認も期待通りの結果となりました。
# 設定変更後も期待したリダイレクトを行う
$ curl -I http://shibata.tech/
HTTP/1.1 301 Moved Permanently
Date: Sat, 22 Jun 2024 09:53:09 GMT
Content-Type: text/html
Content-Length: 167
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Sat, 22 Jun 2024 10:53:09 GMT
Location: https://www.shibata.tech/
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=xxxx(snip)xxxx"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 897b59800c5ab00f-NRT
# リダイレクト先だけを抽出するとこんな感じ
$ curl -I http://shibata.tech/ 2>&1 | grep -i Location
Location: https://www.shibata.tech/
$ curl -I https://shibata.tech/ 2>&1 | grep -i Location
location: https://www.shibata.tech/
$ curl -I https://shibata.tech/website-architecture/ 2>&1 | grep -i Location
location: https://www.shibata.tech/website-architecture/
移行ガイドには他にも多くのパターンの記載例があるので参考にすると良いでしょう。
最後に
以上となります。
Page Rulesの廃止は一旦仕切り直しになりましたが、あくまでも移行方式を改めるためでありPage Rulesの廃止自体が延期され続けることは無いと予想します。
Page Rulesをお使いの方は今のうちに「自分で新しい方式に移行するか」「それともCloudflare社の移行方式に委ねるか」を検討して方針を決めておくと良いでしょう。
現状Zone APEXを使わない形にしたかったのです ↩︎